Field programmable gate arrays (FPGAs) are integrated circuits (ICs) capable of realizing arbitrary logic functions. A general FPGA includes plural basic tiles each of which includes logic blocks (LBs) for implementing basic logic information and a switch block (SB) for arbitrarily connecting the LBs to one another. The LB includes one or more LUTs for implementing truth tables. Combinations of circuits, such as a LUT and a register, implement arbitrary logic information. The LUT includes configuration memories (memories) and a multiplexer (MUX). When the LUT is used, one of the memories is selected according to an input signal. Then, data stored in the selected memory is output. The LUT can implement an arbitrary truth table by rewriting data stored in the memory.
Most of conventional FPGAs use a static random access memory (SRAM) as the memory. However, because the SRAM is a voluntary memory, in order to cause the memory to continue to retain data, it is necessary to continue power supply to the SRAM, and thus the power is consumed because of leakage current. Thus, the LUT in which a nonvolatile memory is used is proposed. In the LUT in which the nonvolatile memory is used, when the LUT is not used, the consumed power can be suppressed by shutting off power supply to all the LUT. However the power is supplied to all memory of the LUT at use of the LUT. That is, the power is consumed by the leakage current because the power is also supplied to memory other than memory selected in response to input signals.